//
//  LXLSearchView.swift
//  Weibo-YQY-test
//
//  Created by Lang on 10/11/15.
//  Copyright © 2015 Lang. All rights reserved.
//

import UIKit

class LXLSearchView: UIView,UITextFieldDelegate {
    // 文字框右边的约束
    @IBOutlet weak var textFieldRightCons: NSLayoutConstraint!
    // 文字框
    @IBOutlet weak var textField: UITextField!
    //取消按钮
    @IBOutlet weak var cancelButton: UIButton!
    
    class func searchView() -> LXLSearchView {
        return NSBundle.mainBundle().loadNibNamed("LXLSearchView", owner: nil, options: nil).last as! LXLSearchView
    }

    override init(frame: CGRect) {
        super.init(frame: frame)
    }

    required init?(coder aDecoder: NSCoder) {
       super.init(coder: aDecoder)
   }
    // 当.nib 文件被加载的时候，会发送一个 awakeFromeNib 的消息
    // 也就是说通过 nib 文件创建 view 时就会执行这个方法
    override func awakeFromNib() {
        // 设置文本框的边框
        textField.layer.borderWidth = 1
        textField.layer.borderColor = UIColor.redColor().CGColor
        textField.layer.cornerRadius = 5
        
        // 设置文本框的 leftView
        textField.delegate = self
        let leftView = UIImageView(image: UIImage(named: "searchbar_textfield_search_icon"))
        
        //设置大小
        leftView.size = CGSizeMake(height, height)
        //设置 imageView 的显示模式为居中，大小按原样大小
        leftView.contentMode = UIViewContentMode.Center
        // 设置为 textField的 leftView
        textField.leftView = leftView
        // 设置 leftView的显示模式
        textField.leftViewMode = UITextFieldViewMode.Always
    }
    
    //取消按钮的点击
    @IBAction func cancelButtonClick(sender: AnyObject) {
        // 退出编辑状态
        endEditing(true)
        
        textFieldRightCons.constant = 0
        UIView.animateWithDuration(0.25) { () -> Void in
            super.layoutIfNeeded()
        }
        
    }
    // MARK: - textField的代理
    func textFieldDidBeginEditing(textField: UITextField) {
        printLog("textField 开始编辑")
        
        // 调整 textField 右边的约束
        self.textFieldRightCons.constant = self.cancelButton.width
        
        // 如果要开启调整约束的动画，需要把 layoutIfNeeded放在动画的 block 中
        UIView.animateWithDuration(0.25) { () -> Void in
            self.layoutIfNeeded()
        }
    }
}
